C = g++
CFLAGS = -g -Wall -Werror
FLAGS = -pthread -lstdc++

BINARIES = backend main main2

all: $(BINARIES)

backend: Backend_mono.cpp Backend_mono.h RWLock.o RWLock.h Enviar_recibir.o Enviar_recibir.h Encabezado.h Casillero.h
	$(CC) $(LDFLAGS) Backend_mono.cpp RWLock.o Enviar_recibir.o -o backend $(FLAGS)

Enviar_recibir.o: Enviar_recibir.cpp Enviar_recibir.h Encabezado.h
	$(CC) $(CFLAGS) -c Enviar_recibir.cpp
	
RWLock.o: RWLock.cpp RWLock.h
	$(CC) $(CFLAGS)  -pthread -c RWLock.cpp

main: main.cpp RWLock.cpp
	$(CC)  main.cpp RWLock.cpp -o main $(FLAGS)

main2: main2.cpp RWLock.cpp
	$(CC)  main2.cpp RWLock.cpp -o main2 $(FLAGS)

clean:
	rm -f *.o
	rm -f $(BINARIES)
